Например, Бобцов

МЕТОД ПОИСКА КЛОНОВ В ПРОГРАММНОМ КОДЕ

Аннотация:

Предмет исследования. Исследованы существующие подходы и методы поиска клонов в программном коде. В результате исследования разработан метод, реализующий семантический подход поиска дублированных фрагментов, направленный на поиск клонов всех типов. Метод. Разработанный метод основан на анализе построенного по файлам исходного кода графа зависимостей программы. Для обнаружения дублированных фрагментов для каждого файла исходного кода генерируются графы зависимостей программы, узлы которых хешируются на основе свойств их содержимого. Пара узлов выбирается из каждого класса эквивалентности. Два изоморфных подграфа, которые включают в себя пару узлов, идентифицируются. Если пара клонов включена в другую пару, она удаляется из набора обнаруженных пар дублированных фрагментов. Набор клонов генерируется из пар дублированных фрагментов, совместно использующих те же изоморфные подграфы. Таким образом, происходит расширение пар клонов. Основные результаты. Для оценки эффективности работы разработанного метода поиска клонов проведено сравнение файлов для определения типов клонов, которые обнаруживает система, использующая данный метод, и тестирование работы на компонентах реальной системы. Выполнено сравнение результатов работы разработанной системы с реально существующими. Практическая значимость. Предложенный метод позволяет автоматизировать анализ исходных файлов. Поиск клонов в программном коде является приоритетным направлением в анализе кода. Обнаружение дублированных фрагментов позволяет бороться с недобросовестным копированием программного кода.

Ключевые слова:

Статьи в номере